package com.zkthink.ceres.store.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.zkthink.base.entity.Entity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import com.zkthink.base.entity.SuperEntity;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;

/**
 * <p>
 * 实体类
 * 店铺表
 * </p>
 *
 * @author kellen
 * @since 2020-05-14
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "StoreUpdateDTO", description = "店铺表")
public class StoreUpdateDTO implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 店铺类型:1汽修店，2保养店，3美容店，4贴膜店，5洗车店，6轮胎更换店，7救援店，8加油站
     */
    @ApiModelProperty(value = "店铺类型:1汽修店，2保养店，3美容店，4贴膜店，5洗车店，6轮胎更换店，7救援店，8加油站")
    @NotNull(message = "店铺类型:1汽修店，2保养店，3美容店，4贴膜店，5洗车店，6轮胎更换店，7救援店，8加油站")
    @TableField("store_type")
    @Excel(name = "店铺类型:1汽修店，2保养店，3美容店，4贴膜店，5洗车店，6轮胎更换店，7救援店，8加油站")
    private Integer storeType;

    @ApiModelProperty(value = "主键")
    @NotNull(message = "id不能为空", groups = SuperEntity.Update.class)
    private Long id;

    /**
     * 店铺名称
     */
    @ApiModelProperty(value = "店铺名称")
    @Length(max = 200, message = "店铺名称长度不能超过200")
    private String storeName;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    @TableField(value = "telephone", condition = LIKE)
    @Excel(name = "联系电话")
    private String telephone;
    /**
     * 店铺简介
     */
    @ApiModelProperty(value = "店铺简介")
    @Length(max = 500, message = "店铺简介长度不能超过500")
    @TableField(value = "remark", condition = LIKE)
    @Excel(name = "店铺简介")
    private String remark;
    /**
     * 营业时间
     */
    @ApiModelProperty(value = "营业时间")
    @TableField(value = "business_hours", condition = LIKE)
    @Excel(name = "营业时间")
    private String businessHours;
    /**
     * 店面照
     */
    @ApiModelProperty(value = "店面照")
    @TableField(value = "storefront_img", condition = LIKE)
    @Excel(name = "店面照")
    private String storefrontImg;

    /**
     * 店面背景图
     */
    @ApiModelProperty(value = "背景图")
    @TableField(value = "background_img", condition = LIKE)
    @Excel(name = "背景图")
    private String backgroundImg;

    @ApiModelProperty(value = "注册人注册省份")
    @TableField("province")
    @Excel(name = "注册人注册省份")
    private String province;

    @ApiModelProperty(value = "注册人注册市县")
    @TableField("city")
    @Excel(name = "注册人注册市县")
    private String city;

    @ApiModelProperty(value = "注册人注册区")
    @TableField("area")
    @Excel(name = "注册人注册区")
    private String area;

    @ApiModelProperty(value = "地址详情")
    @TableField("address")
    private String address;
    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    @TableField("longitude")
    @Excel(name = "经度")
    private String longitude;
    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    @TableField("latitude")
    @Excel(name = "纬度")
    private String latitude;
}
